1. Field of the Invention
The present invention relates to systems and methods for efficiently routing and modifying messages based on an input message. More specifically, the invention relates to efficient systems and methods for applying and updating business rules that determine the routing of the sales and trades.
2. Description of the Related Art
At the heart of most automated processing systems is a rules engine that controls a process based on a set of attributes input into the rules engine. Examples of automated processing systems include automated securities trading systems such as those disclosed in U.S. Pat. No. 6,278,982 issued on Aug. 21, 2001 to Korhammer et al. or in U.S. Pat. No. 6,519,574 issued on Feb. 11, 2003 to Wilton et al., both incorporated herein by reference.
Using an automated securities trading system as an illustrative example, a client runs a client program on the client's computer that communicates with a broker/dealer server executing a server counterpart program. The client program sends information to the server according to a predetermined protocol such as, for example, a Financial Information eXchange (FIX) protocol. The information may be formatted as key/value pairs where the key identifies an attribute and the value is the value corresponding to that attribute. An example of an attribute pair is “client=felix” where “client” is the key, or attribute, and “felix” is the value. The incoming attribute pairs are received by the server counterpart program and may be used to set other attributes or control how the server counterpart program processes the session through the use of rules. For example, the automated processing system may contain a rule that states that IF client=felix THEN MaxOrderSize=10,000. Another rule may state that IF client=ernie THEN MaxOrderSize=20,000. In these examples, “client” is referred to as an input attribute and “MaxOrderSize” is referred to as a target attribute.
Each rule allows the automated processing system to provide customized processing of the client's order. As the number of clients increase, however, the number of rules increase and may become a significant portion of the processing time as the rules engine tests each rule in the system.
The availability of pre-packaged generic rules engines such as, for example, ILOG Rules from ILOG, Inc. of Mountain View, Calif. can decrease development costs by providing a complete rules engine module for the automated processing system. The pre-packaged rules engines, however, may trade performance for scope of application. Furthermore, adding/editing rules and viewing their interactions may be difficult in the pre-packaged rules engines.